module stopwatch(
    input clk_1Hz,         // 1Hz时钟
    input rst,             // 重置信号
    output reg [11:0] time_display,   // 拼接后的时间显示，时、分拼接为12位
    output reg [3:0] sec_tens, sec_ones   // 秒数的十位和个位
);

    reg [5:0] sec; // 假设秒数范围为 0~59
    reg [3:0] sec_tens, sec_ones;
    reg [5:0] min;  // 分钟
    reg [4:0] hour; // 小时
    integer temp;

    // 秒表计数器逻辑
    always @(posedge clk_1Hz or negedge rst) begin
        if (!rst) begin
            sec <= 0;
            min <= 0;
            hour <= 0;
        end else begin
            if (sec == 59) begin
                sec <= 0;
                if (min == 59) begin
                    min <= 0;
                    if (hour == 23) begin
                        hour <= 0;
                    end else begin
                        hour <= hour + 1;
                    end
                end else begin
                    min <= min + 1;
                end
            end else begin
                sec <= sec + 1;
            end
        end
    end

    // 将秒数、分钟和小时拼接成一个显示值
    always @(hour or min) begin
        time_display = {hour[4:0], min[5:0]};  // 拼接时和分
    end

    // 将秒数分解成十位和个位数，供x7seg显示
    always @(sec) begin
always @(*) 
begin
    temp = sec;
    sec_tens = 0;
    while (temp >= 10) begin
        temp = temp - 10;
        sec_tens = sec_tens + 1;
    end
    sec_ones = temp;
end
    end

endmodule
